<?php

class VK {

    private $client_id = 3905973;                           // ID приложения
    private $client_secret = 'WMGaDCL1JxKlTOKUhSh9';        // Защищенный ключ
    private $group_id = 55754139;                           // ID групы
    
    private $v = '5.2';                                     // Версия API
    
    // http://oauth.vk.com/authorize?client_id=3905973&scope=wall,offline&redirect_uri=http://oauth.vk.com/blank.html&response_type=token
    private $access_token = 'a304f08ffc190ea4cb40931dff99e81a19605b86e556296bd96c09c8eb995a6689d2cbe45d2a672f7e57d';

    
    function __construct() {}

    // Выполняет методы API 
    public function api($method, $params = array(), $addToken = false) {

        ksort($params);
        if ($addToken) {
            $params['access_token'] = $this->access_token;
        }

        $answer = Parser::getHtmlPage('https://api.vkontakte.ru/method/' . $method, $params);

        return $answer;
    }

    /**
     * Публикует обявление на стене групы
     */
    public function wallPost($model) {

        /*
         * создаю новый льбом для обявления
         */

        $json = $this->api('photos.createAlbum', array(
            'title' => 'Квартира #' . $model->id,
            'group_id' => $this->group_id,
            'description' => $model->getAddress(),
            'comment_privacy' => 0,
            'privacy' => 0,
                ), true);
        $data = json_decode($json, 1);

        $albumId = $data['response']['aid'];


        /*
         *  загрузка картинки в альбот ВК
         */
        $json = $this->api('photos.getUploadServer', array(
            'album_id' => $albumId,
            'group_id' => $this->group_id,
                ), true);
        $data = json_decode($json, 1);

        // Отправляем картинку постом
        $postData = array();
        for ($i = 0; $i < 5; $i++) {
            if (!empty($model->{'img' . $i})) {
                $j = $i + 1;
                $postData['file' . $j] = '@' . '/home/amu/flatrent.in.ua/www/data/imgs/flat/' . $model->id . '/' . $model->{'img' . $i};
            }
        }

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $data['response']['upload_url']);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        $result = curl_exec($ch);
        curl_close($ch);
        $data = json_decode($result, true);

        // сохраняю отправленые картинки
        $json = $this->api('photos.save', array(
            'album_id' => $albumId,
            'group_id' => $this->group_id,
            'server' => $data['server'],
            'photos_list' => $data['photos_list'],
            'hash' => $data['hash'],
            'latitude' => '',
            'longitude' => '',
            'caption' => '',
            'description' => '',
                ), true);
        $data = json_decode($json, true);

        /*
         *  Оставляю пост в ВК
         */
        $photoId = array();
        foreach($data['response'] as $photo){
            $photoId[] = $photo['id'];
        }
        //echo implode(",", $photoId);exit();
        $this->api('wall.post', array(
            'owner_id' => -55754139,
            'message' => $model->description,
            'attachments' => 'album-'.$this->group_id.'_'.$albumId.',http://flatrent.in.ua/' . $model->сity->url . '/' . $model->id,
            'lat' => $model->lat,
            'long' => $model->lng,
                ), true);
        
    }

}

